class Solution
{
public:
    int divisorSubstrings(int num, int k)
    {
        long long numLL = num;
        long long upperMask = pow(10, k);
        long long lowerMask = 1LL;
        int beautifulCount = 0;
        while (upperMask <= numLL * 10LL)
        {
            long long subNum = (numLL % upperMask) / lowerMask;
            if (subNum != 0 && numLL % subNum == 0)
            {
                ++beautifulCount;
            }
            upperMask *= 10LL;
            lowerMask *= 10LL;
        }
        return beautifulCount;
    }
};